/*
 * Copyright 2009 BioTeam Inc
 * 
 * Licensed under License GNU LESSER GENERAL PUBLIC LICENSE version 3.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.gnu.org/copyleft/lesser.html
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package net.bioteam.appweb.submit;

import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import net.bioteam.appweb.Config;

import org.apache.commons.io.IOUtils;

public class SGESubmitter extends DRMAASubmitter
{

	@Override
	public String taskIDs2Jobid(List ids)
	{
		String firstID=(String)ids.get(0);
		int index=firstID.indexOf('.');
		return firstID.substring(0, index);
	}

	@Override
	public String getHoldNativeSpecification(String jobid)
	{
		return "-hold_jid "+jobid;
	}
	
	
	public void killJob(RunStatus rs) throws Exception
	{
		logger.info("kill job "+rs.getJobid());
		ProcessBuilder pb = new ProcessBuilder(Config.SGE_BIN_DIR+File.separator+"qdel", rs.getJobid());
		Process p = pb.start();
		p.waitFor();

		if (p.exitValue()!=0)
		{
			InputStream in=p.getErrorStream();
			String content=IOUtils.toString(in);

			p.destroy();
			throw new Exception(content);
		}

		p.destroy();
	}

}
